#include <stdio.h>
#include <unistd.h>

int main()
{
    int i = 0;
    int num = 3;
    pid_t  pid;
    
    for(i = 0; i < num; i++) {
        pid = fork();
        // 创建具有兄弟关系的子进程(子进程不再 fork)
        if(0 == pid) {
            break;   // 子进程跳出循环
        }
    }

    // 判断每个子进程
    // 子进程会跳出循环，父进程不会跳出循环
    if(0 == i) {
        printf("First process, pid = %d\n", getpid());
    }
    
    if(1 == i) {
        printf("Second process, pid = %d\n", getpid());
    }

    if(2 == i) {
        printf("Third process, pid = %d\n", getpid());
    }
    
    if(i == num) {
        printf("Father process, pid = %d\n", getpid());
    }

    return 0;
}

